#include <stdio.h>
#include "myvector.h"

// 比较函数（用于排序）
int compare_int(const void *a, const void *b)
{
    return *(const int *)a - *(const int *)b;
}

int main()
{
    // 创建存储 int 的动态数组
    MyVector *vec = myvector_create(sizeof(int));
    if (!vec)
    {
        perror("Failed to create vector");
        return 1;
    }

    // 添加元素
    int nums[] = {5, 2, 8, 1};
    for (size_t i = 0; i < sizeof(nums) / sizeof(nums[0]); i++)
    {
        myvector_push_back(vec, &nums[i]);
    }

    // 修改元素
    int *first = (int *)myvector_at(vec, 0);
    *first = 10;

    // 排序
    myvector_sort(vec, compare_int);

    // 打印所有元素
    printf("Sorted elements:\n");
    for (size_t i = 0; i < myvector_size(vec); i++)
    {
        const int *num = (const int *)myvector_get(vec, i);
        printf("  vec[%zu] = %d\n", i, *num);
    }

    // 销毁
    myvector_destroy(vec);
    return 0;
}